package com.zhongge.shuffle;

import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName Test
 * @Description TODO
 * @Author zhongge
 * @Version 1.0
 */
@SuppressWarnings("all")
public class Test {
    public static void main(String[] args) {
        List<Card> cardList = new ArrayList<>();

        CardGame cardGame = new CardGame();
        //初始化容器
        cardList = cardGame.buyCard();

        System.out.println("洗牌前：" + cardList);
        //遍历一下
        //洗牌
        cardGame.shuffle(cardList);
        System.out.println("洗牌后：" + cardList);

        //开始发牌：
        /*
        规则：就是说：3个人每个人法5张牌
        场景：每一次发牌都是从最开头第一张拿的，之后后面的牌就充当了第一张
         */

        //使用二维集合存放3个人
        List<List<Card>> cards = new ArrayList<>();//右侧直接new ArrayList<就可以了，因为集合都是存地址的，他不分什么二级地址一级地址的说法

        cards.add(new ArrayList<>());//小张
        cards.add(new ArrayList<>());//小王
        cards.add(new ArrayList<>());//小李

        for (int i = 0; i < 5; i++) {//总共发5次
            for (int j = 0; j < 3; j++) {//每一次发给3个人
                //开始发一张牌: 从容器中的到第一个元素并将元素在容器中 删除remove方法会返回删除之前的值
                //每一次拿的都是第0张牌，拿走后后面的牌有挤上来
                Card card = cardList.remove(0);
                //得到指定的人 cards.get(j)
                //将这张牌给指定的人：.add(card);
                cards.get(j).add(card);
            }
        }

        //小张得到牌：
        System.out.println("小张得到的牌：" + cards.get(0));
        //小王得到牌：
        System.out.println("小王得到的牌：" + cards.get(1));
        //小李得到牌：
        System.out.println("小李得到的牌：" + cards.get(2));

        //剩余的牌
        System.out.println("剩余的牌：" + cardList);
    }
}
